package org.inspiration.dudu.web.service.content;

import org.inspiration.dudu.content.model.dto.CommentDTO;
import org.inspiration.dudu.content.model.vo.CommentVO;

import java.util.List;
import java.util.Map;

/**
 * 评论服务接口，提供对评论的相关操作。
 */
public interface CommentFacadeService {
    /**
     * 上传评论
     * 
     * @param commentDTO 评论数据传输对象
     * @return 评论的唯一标识符
     */
    String uploadComment(CommentDTO commentDTO);

    /**
     * 根据父评论ID以升序获取评论列表
     * 
     * @param parentId 父评论的唯一标识符
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 评论视图对象列表
     */
    List<CommentVO> getCommentsByParentIdOrderByASC(String parentId, Integer pageNum, Integer pageSize);

    /**
     * 根据父评论ID以降序获取评论列表
     * 
     * @param parentId 父评论的唯一标识符
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 评论视图对象列表
     */
    List<CommentVO> getCommentsByParentIdOrderByDESC(String parentId, Integer pageNum, Integer pageSize);


    /**
     * 将指定评论标记为已读
     */
    void markAsRead(CommentDTO commentDTO);

    List<Map<String, Object>> getReceiveCommentsByUserIdOrderByDESC(Long userId, Integer pageNum, Integer pageSize);
}
